package com.datastructure;

/**
 * 实现无序数组案例
 */
public class MyArrayMain {
    public static void main(String[] args) {
        MyArray myArray = new MyArray(10);
        myArray.insert(12);
        myArray.insert(5);
        myArray.insert(1);
        myArray.forEach();
        myArray.delete(5);
        myArray.forEach();
    }
}

/**
 * 实现无序数组
 */
class MyArray {
    //存储具体数据的数组
    int[] array;
    //当前数组存放数据数量
    int size;

    //构造函数，初始化无序数组
    public MyArray(int maxPage) {
        array = new int[maxPage];
        size = 0;
    }

    /**
     * 插入
     */
    public void insert(int value) {
        if (size < array.length) {
            array[size++] = value;
        }
    }

    /**
     * 查找返回下标
     */
    public int find(int value) {
        int i;
        for (i = 0; i < array.length; i++) {
            if (array[i] == value) {
                break;
            }
        }
        if (i == size) {
            System.out.println("数组中不存在当前数据");
            return -1;
        } else {
            return i;
        }
    }

    /**
     * 删除
     */
    public void delete(int value) {
        int j;
        if((j=this.find(value))>-1){
            for (int i = j; i < size-1; i++) {
                array[i]=array[i+1];
            }
            //删除完把记录-1
            size--;
        }
    }

    /**
     * 遍历
     */
    public void forEach(){
        for (int i = 0; i < size; i++) {
            System.out.print(array[i]+" ");
        }
        System.out.println();
    }

}


